package com.dankegongyu.lib.common.util;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * @author wpq
 * @version 1.0
 */
public class MathUtil {

    private MathUtil() {
        throw new AssertionError("cannot be instantiated");
    }

    /**
     * 四舍五入并保留几位小数
     *
     * @param value 数值
     * @param scale 保留几位小数：1，2 ……
     * @return
     */
    public static double round(double value, int scale) {
        double result = 0;
        try {
            result = new BigDecimal(value).setScale(scale, RoundingMode.UP).doubleValue();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 四舍五入并保留几位小数
     *
     * @param value 数值
     * @param scale 保留几位小数：1，2 ……
     * @return
     */
    public static double round(String value, int scale) {
        double result = 0;
        try {
            result = new BigDecimal(value).setScale(scale, RoundingMode.UP).doubleValue();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 字符串转double，处理转换失败或空等情况
     *
     * @param in 带转换字符串
     * @return 转换结果
     */
    public static double parseDouble(String in) {
        double d = 0;
        try {
            d = Double.parseDouble(in);
        } catch (Exception e) {
//            e.printStackTrace();
        }
        return d;
    }
}
